class Solution {
public:
    int maxArea(vector<int>& height) {
        //双指针问题：确定初始指针的位置，如何移动指针
        //对撞指针   max ,maxr,maxl 从中点向双方扩展   每一次的s = min(h(r),h(l))*(r-l)
        int max=-1,len = height.size();
        //l = 0,r = len-1   要注意的是  “如何移动指针”：移动height(r) height(l) 中较小值的下标 r or l
        int l = 0,r = len-1;//要证明：移动小的指针=》左边这个小的值再也不会被用到
        while(l<=r){
            int cur = min(height[l],height[r])*(r-l);
            if (cur>max)
                max = cur;
            if (height[r]<height[l]) r--;
            else l++;
        }
        return max;
    }
};